/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logica;

import fisica.CapaFisica;
import fisica.DeterminacionesEstudioLaboratorioFisica;
import hibernate.objeto.DeterminacionesEstudioLaboratorio;
import hibernate.objeto.EstudioLaboratorio;
import hibernate.objeto.TipoCargaEstudioLaboratorio;
import java.util.Vector;

/**
 *
 * @author Gonzalo
 */
public class DeterminacionesEstudioLaboratorioLogica extends CapaLogica {

    /**
     * Crea y persiste las determinaciones del estudio de laboratorio.
     *
     * @param datosDeterminacionesEstudioLaboratorio Los datos de las
     * determinaciones del estudio de laboratorio
     *
     * @param estudioLaboratorio  El id del objeto
     * creado para su posterior recuperación
     * @return true si se agregó correctamente, false en caso contrario
     */
    public static boolean agregarDeterminacionesEstudioLaboratorio(
            Object[] datosDeterminacionesEstudioLaboratorio,
            EstudioLaboratorio estudioLaboratorio) {
        //Crea el objeto
        DeterminacionesEstudioLaboratorio determinacionesEstudioLaboratorio =
                crearObjetoDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio, estudioLaboratorio);

        //Persiste el objeto
        if (CapaFisica.guardarOActualizarObjeto(determinacionesEstudioLaboratorio)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Crea el objeto Determinaciones.
     *
     * @param datosDeterminacionesEstudioLaboratorio Los datos de las
     * determinaciones
     * @param estudioLaboratorio El objeto estudio laboratorio que contendra
     * las determinaciones
     * @return El objeto creado
     */
    private static DeterminacionesEstudioLaboratorio
            crearObjetoDeterminacionesEstudioLaboratorio(
            Object[] datosDeterminacionesEstudioLaboratorio,
            EstudioLaboratorio estudioLaboratorio) {

        DeterminacionesEstudioLaboratorio determinacionesEstudioLaboratorio =
                new DeterminacionesEstudioLaboratorio();

        determinacionesEstudioLaboratorio.setAnalisisDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_ANALISIS_STRING].toString());

        determinacionesEstudioLaboratorio.setTipoDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_TIPO_STRING].toString());

        determinacionesEstudioLaboratorio.setSistemaDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_SISTEMA].toString());

        determinacionesEstudioLaboratorio.setValorDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_VALOR].toString());

        determinacionesEstudioLaboratorio.setValoresDeReferenciaDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_VALORES_DE_REFERENCIA].
                toString());

        determinacionesEstudioLaboratorio.setUnidadesDeterminacionesEstudioLaboratorio(
                datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_UNIDADES].toString());

        determinacionesEstudioLaboratorio.setTipoCargaEstudioLaboratorio(
                (TipoCargaEstudioLaboratorio)datosDeterminacionesEstudioLaboratorio[CapaLogica.
                ESTUDIO_LABORATORIO_DETERMINACIONES_TIPO]);

        determinacionesEstudioLaboratorio.setEstudioLaboratorio(estudioLaboratorio);

        return determinacionesEstudioLaboratorio;
    }

    /**
     * Retorna un vector de objetos DeterminacionesEstudioLaboratorio
     * según el id del estudio laboratorio.
     *
     * @param idDeterminacionesEstudioLaboratorio El número de documento
     * @return El objeto Paciente consultado
     */
    public static Vector<DeterminacionesEstudioLaboratorio>
            getVectorDeterminacionesEstudioLaboratorioPorIdEstudioLaboratorio(
            int idDeterminacionesEstudioLaboratorio) {
        return DeterminacionesEstudioLaboratorioFisica.
                getVectorDeterminacionesEstudioLaboratorioPorIdEstudioLaboratorio(
                idDeterminacionesEstudioLaboratorio);
    }


    /**
     * Retorna el objeto DeterminacionesEstudioLaboratorio según el id.
     *
     * @param idDeterminacionesEstudioLaboratorio  El id de la
     * Ecg
     * @return El objeto DeterminacionesEstudioLaboratorio consultado,
     * null si no existe
     */
    public static DeterminacionesEstudioLaboratorio
            getDeterminacionesEstudioLaboratorioPorId(
            int idDeterminacionesEstudioLaboratorio) {
        return DeterminacionesEstudioLaboratorioFisica
                .getDeterminacionesEstudioLaboratorioPorId(
                idDeterminacionesEstudioLaboratorio);
    }

    /**
     * Retorna todo el objeto DeterminacionesEstudioLaboratorio en string.
     *
     * @param determinacionesEstudioLaboratorio  El objeto a escribir
     */
    public static String getDeterminacionesEstudioLaboratorioString(
            DeterminacionesEstudioLaboratorio determinacionesEstudioLaboratorio) {
        String determinacionesEstudioLaboratorioString =
                "idDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getIdDeterminacionesEstudioLaboratorio() + "\n" +
                "analisisDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getAnalisisDeterminacionesEstudioLaboratorio() + "\n" +
                "tipoDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getTipoDeterminacionesEstudioLaboratorio() + "\n" +
                "unidadesDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getUnidadesDeterminacionesEstudioLaboratorio() + "\n" +
                "sistemaDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getSistemaDeterminacionesEstudioLaboratorio() + "\n" +
                "valorDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getValorDeterminacionesEstudioLaboratorio() + "\n" +
                "valoresDeReferenciaDeterminacionesEstudioLaboratorio: " +
                determinacionesEstudioLaboratorio.getValoresDeReferenciaDeterminacionesEstudioLaboratorio() + "\n";

        return determinacionesEstudioLaboratorioString;
    }

    /**
     * Retorna todo el objeto DeterminacionesEstudioLaboratorio en HTML.
     *
     * @param determinacionesEstudioLaboratorio  El objeto a escribir
     */
    public static String getDeterminacionesEstudioLaboratorioHTML(
            DeterminacionesEstudioLaboratorio determinacionesEstudioLaboratorio) {

        String determinacionesEstudioLaboratorioHTML = "";

        if (determinacionesEstudioLaboratorio != null) {
            determinacionesEstudioLaboratorioHTML =
                "<font size=\"3\" face=\"arial\" color=\"blue\">"
                    + "DETERMINACIÓN</font><br><hr /><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Análisis: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getAnalisisDeterminacionesEstudioLaboratorio() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Tipo: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getTipoDeterminacionesEstudioLaboratorio() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Unidades: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getUnidadesDeterminacionesEstudioLaboratorio() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Sistema: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getSistemaDeterminacionesEstudioLaboratorio() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Valor: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getValorDeterminacionesEstudioLaboratorio() + "</font><br><br>"
                + "<font size=\"3\" face=\"arial\" color=\"blue\">Valores de referencia: </font><br>"
                    + "<font size=\"3\" face=\"arial\">" +
                determinacionesEstudioLaboratorio.getValoresDeReferenciaDeterminacionesEstudioLaboratorio() + "</font><br><br>";
        } else {
            determinacionesEstudioLaboratorioHTML = "<font size=\"3\" face=\"arial\" color=\"blue\">DETERMINACIÓN</font><br><br> " +
                    "<hr /><font size=\"3\" face=\"arial\">No posee</font><br></font><hr />";
        }

        return determinacionesEstudioLaboratorioHTML;
    }

}
